package-manager-detector

Package manager detector is based on lock files, the package.json
packageManager
field, and installation metadata to detect the package manager used in a project.
It supports npm
, yarn
, pnpm
, deno
, and bun
.
Install
pnpm add package-manager-detector
npm i package-manager-detector
yarn add package-manager-detector
Usage
ESM
To check the file system for which package manager is used:
import { detect } from 'package-manager-detector/detect'
or sync version:
import { detectSync } from 'package-manager-detector/detect'
or to get the currently running package manager:
import { getUserAgent } from 'package-manager-detector/detect'
CommonJS
To check the file system for which package manager is used:
const { detect } = require('package-manager-detector/detect')
or sync version:
const { detectSync } = require('package-manager-detector/detect')
or to get the currently running package manager:
const { getUserAgent } = require('package-manager-detector/detect')
Agents and Commands
This package includes package manager agents and their corresponding commands for:
'agent'
- run the package manager with no arguments
'install'
- install dependencies
'frozen'
- install dependencies using frozen lockfile
'add'
- add dependencies
'uninstall'
- remove dependencies
'global'
- install global packages
'global_uninstall'
- remove global packages
'upgrade'
- upgrade dependencies
'upgrade-interactive'
- upgrade dependencies interactively: not available for npm
and bun
'execute'
- download & execute binary scripts
'execute-local'
- execute binary scripts (from package locally installed)
'run'
- run package.json
scripts
Using Agents and Commands
A resolveCommand
function is provided to resolve the command for a specific agent.
import { resolveCommand } from 'package-manager-detector/commands'
import { detect } from 'package-manager-detector/detect'
const pm = await detect()
if (!pm)
throw new Error('Could not detect package manager')
const { command, args } = resolveCommand(pm.agent, 'add', ['@antfu/ni'])
console.log(`Detected the ${pm.agent} package manager. You can run a install with ${command} ${args.join(' ')}`)
You can check the source code or the JSDocs for more information.
License
MIT License © 2020-PRESENT Anthony Fu